#include <head.h>
// 传递结构体
/*
#include <pthread.h>
void pthread_exit(void *retval);
功能:
	pthread_exit 函数用于在线程函数内部结束线程的执行，并可选地返回一个指针 retval，作为线程的退出状态。
参数:
	retval：一个 void * 类型的指针，表示线程的退出状态。可以传递任意类型的数据作为线程函数的返回值。
返回值:
	无

int pthread_join(pthread_t thread, void **retval);
功能:
	1、在主线程中 等待 线程结束  会阻塞等待 直到目标结束
    2、获取线程退出状态 通过 retval 来获取退出的状态 通过return 返回的值
参数:
	thread：被等待的线程的标识符，即目标线程的 pthread_t 类型的标识符。
	retval：一个指向指针的指针，用于存储被等待线程的退出状态。
返回值:
	成功，返回0
    错误，返回错误编号

*/
typedef struct stu
{
    int id;
    int age;
    char name[128];
}stu;


void * func_1(void * stu_1)
{
    printf("%d\n" , *((int *)stu_1));

    int * val = stu_1;
    *val = 70;

    pthread_exit((void * )val);

}

int main(int argc, char const *argv[])
{
    int num_1 = 10;
    pthread_t Tid = 0;

    pthread_create( &Tid , NULL , func_1 , (void *)&num_1); // 创建线程

    // 回收进程
    int val = 10;
    int *num = &val;
    pthread_join(Tid , (void *)&num);
    printf("%d\n" , *num);


    return 0;
}